package com.itheima.exception;

import com.itheima.commons.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author Tang
 * @date 2023/1/6
 */
//@RestControllerAdvice注解可以捕获控制器中所有的异常
//一般和@ExceptionHandler注解配合使用，
@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {

    //用来处理一些无法预料的异常
    @ExceptionHandler(Exception.class)
    public R<String> doException(Exception ex) {
        log.error(ex.getMessage());
        return R.error(ex.getMessage());
    }

    //用来处理可以预料的异常
    @ExceptionHandler(CustomException.class)  //注解的作用：用来指定异常处理类
    public R<String> doCustomException(CustomException ex){
        log.warn(ex.getMessage());
        return R.error(ex.getMessage());
    }

}
